package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.WmsGoods;
import com.jy.wms.pojo.WmsOwnerOrdertype;
import com.jy.wms.pojo.WmsShipmentOrder;
import com.jy.wms.pojo.WmsShipmentOrderDetailed;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @ClassName: UserController
 * @Description: TODO(这里用一句话描述这个类的作用)
 * @Author syh
 * @Date 2018/9/13
 */
public interface OrderInterfaceMapper extends BaseDao<WmsShipmentOrderDetailed> {

    //查询发运明细相关信息
    public List<WmsShipmentOrderDetailed> detailList(@Param("fymxid") String fymxid);

    /**
     * 通过发运编号和发运类型查找订单
     * @param map
     * @return
     */
    public WmsShipmentOrder getOrderByBhAndLx(@Param("map") Map map);

    /**
     * 增加发运订单
     * @param map
     * @return
     */
    public int baseInsertShipmentOrder(@Param("map") Map map);

    /**
     * 通过订单号查询此订单是否存在
     * @param fybh 订单号
     * @return
     */
    public WmsShipmentOrder getCountByfybh(@Param("fybh") String fybh);
    /**
     * 通过货品编号查询货品
     * @param bh 货品编号
     * @return
     */
    public WmsGoods selectGoodsByBh(@Param("bh") String bh);

    /**
     *   通过类型代码查询订单类型
     * @param lxdm 类型代码
     * @return  订单类型
     */
    public WmsOwnerOrdertype getOrdertype(@Param("lxdm") String lxdm);
    /**
     * 根据单子id查找对应业务类型/事物类型
     * */
    public WmsShipmentOrder getType(@Param("fyid") String fyid);
    //////////////////////////新增保单接口///////////////////////////
    /**
     * 查询发运订单数据(用对方提供的参数:订单号,货主)
     * @param sono
     * @param works
     * @return
     */
    public WmsShipmentOrder GetIssueOrderStatus(@Param("sono") String sono,@Param("works") String works);

    /**
     * 销售出库单取消接口(取消主表)
     * @param sono
     * @return
     */
    public Integer CancelIssueorder_BD(@Param("sono") String sono);

    /**
     * 查发运iD
     * @param sono
     * @return
     */
    public WmsShipmentOrder getId(@Param("sono") String sono);

    /**
     * 销售出库单取消接口(取消明细表)
     * @param fyid
     * @return
     */
    public Integer getDeleteMx(@Param("fyid") String fyid);

    /**
     * 查询拆单状态(修改)
     * @param sono
     * @return
     */
    public WmsShipmentOrder  getCdzt(@Param("sono") String sono,@Param("whouse")String whouse,@Param("works")String works);

    /**
     * 查询有无订单主表信息(取消用)
     * @param sono
     * @return
     */
    public WmsShipmentOrder  getCdzts(@Param("sono") String sono);

    /**
     * 查询有无订单明细表信息(取消用)
     * @param fyid
     * @return
     */
    public List<WmsShipmentOrderDetailed>  getSeachMx(@Param("fyid") String fyid);

    /**
     * 更改发运订单(根据对方传过来的编号)
     * @param map
     * @return
     */
    public Integer getUpdate(@Param("map") Map map);

    /**
     * 8_21 主动调erp 保存到数据库,发运订单主表
     * @param entity
     * @return
     */
    public Integer baseInsertSelectiveFz(@Param("WmsShipmentOrder") WmsShipmentOrder entity);

    /**
     * 修改接口 保存到历史表的发运订单主表信息(
     * @param entity
     * @return
     */
    public Integer baseInsertEditFz(@Param("WmsShipmentOrder") WmsShipmentOrder entity);

    /**
     * 取消接口 保存到历史表的发运订单主表信息(
     * @param entity
     * @return
     */
    public Integer baseInsertQxFz(@Param("WmsShipmentOrder") WmsShipmentOrder entity);

    /**
     * 8_21 主动调erp 保存到数据库,发运订单明细
     * @param entity
     * @return
     */
    public Integer baseInsertSelectiveMx(@Param("WmsShipmentOrderDetailed") WmsShipmentOrderDetailed entity);

    /**
     * 把订单明细信息,存到订单明细历史表里 明细只有,取消用
     * @param entity
     * @return
     */
    public Integer baseInsertQxMx(@Param("WmsShipmentOrderDetailed") WmsShipmentOrderDetailed entity);

    /**
     * 查货品id 以及包装的信息
     * @param matno
     * @return
     */
    public List<WmsShipmentOrderDetailed> selectHpbm(@Param("matno") String matno);

    /**
     * 查订单类型id
     * @param lxdm
     * @param ckid
     * @param hzid
     * @return
     */
    public String getDdlxs(@Param("lxdm")String lxdm,@Param("ckid")String ckid,@Param("hzid")String hzid);

}
